Fuses may be arranged to provide persistent storage of data, for example, by selectively blowing the fuses to encode the data. A fuse is typically considered to be a binary “0” if the fuse is intact, and a binary “1” if the fuse is blown. Thus, selectively blowing fuses creates a binary number.
Examples of fuses used for persistent storage of data comprise e-Fuses and laser fuses. As discussed in the incorporated '268 patent, e-Fuses are electrically programmable or written by applying a high blow voltage to a fuse. The data is read by latching the data into registers. Laser fuses are blown by applying a laser to the fuse to overheat it.
Fuses may be employed to encode data that is intended to persist unchanged and that is desired to be maintained indefinitely without requiring battery backup. One example of such data comprises a device serial number and data about the device. Once the data has been encoded, the data typically cannot be changed. Another example comprises a permanent encryption key such as that may be used for encrypting and decrypting data about a device in which the fuses are embedded, such as device metadata. An encryption engine will have the only access to the encryption key for encrypting or decrypting the data, but there is no alternate access once the key has been encoded.
Data about a device may be encoded by, for example, the device manufacturer at a specific facility. Encryption keys require full security and are encoded at a full security location, and, once encoded, further encoding may be prevented by destroying access to the encoding apparatus. In the case of laser fuses, the encoded fuses may be covered by a layer preventing optical reading of the fuses and preventing further encoding. In the case of e-Fuses, external access to the encryption keys may be restricted and writing prevented, for example, by blowing a master fuse, or, as discussed in the incorporated '268 patent, the e-Fuses may implement monotonic updates in one direction with time, such as a version value that may only be increased.
An issue may comprise the possible introduction of one or more errors into the encoding process in that a fuse may accidentally be blown before, during and after the encoding process. Typically, such an error requires that the entire chip embodying the fuses must be rejected. Once the master fuse has been blown, there may be no way to determine whether an intended unblown fuse has been blown. All a user would know is that the device embodying the chip no longer works because it cannot properly read its metadata. Another issue may comprise the disposition of the encoded fuses that are no longer needed or are compromised. The disposition must be protected to prevent unauthorized use.